package com.ruoyi.order.domain;

import lombok.Getter;

@Getter
public enum OrderOperation {

    //    /**
//     * 创建订单
//     */
//    private final String CREATE_ORDER="CREATE_ORDER";
//    /**
//     * 接单
//     */
//    private final String ACCEPT_ORDERS="ACCEPT_ORDERS";
//    /**
//     * 拒单
//     */
//    private final String REJECT_ORDERS="REJECT_ORDERS";
//    /**
//     * 取消订单
//     */
//    private final String CANCEL_ORDERS="CANCEL_ORDERS";
//    /**
//     * 指派订单
//     */
//    private final String REFUSE_ORDERS="ASSIGN_ORDERS";
    // 生成订单，租车端口微信支付生成订单操作
    GENERATE_ORDER("GENERATE_ORDER"),
    // 支付订单
    PAYMENT_ORDER("PAYMENT_ORDER"),
    // 创建订单，特指定人创建订单，此订单没有经过平台支付
    CREATE_ORDER("CREATE_ORDER"),
    // 员工弃单
    ABANDON_ORDER("ABANDON_ORDER"),
    // 同意接单
    ACCEPT_ORDERS("ACCEPT_ORDERS"),
    // 拒绝订单，此操作将会退还订单费用
    REJECT_ORDERS("REJECT_ORDERS"),
    // 取消接单
    CANCEL_ORDERS("CANCEL_ORDERS"),
    // 指派订单，用于后台指派人员接单
    ASSIGN_ORDERS("ASSIGN_ORDERS"),
    // 用户使用中
    USE_LOADING("USE_LOADING"),
    // 用户订单到期或提前还车
    USE_EXPIRE("USE_EXPIRE"),
    // 续单（用户续单为续费操作，员工续单为直接续时间）
    CONTINUED_ORDER("CONTINUED_ORDER"),
    // 员工取回单
    ACCEPT_RETRIEVE_ORDERS("ACCEPT_RETRIEVE_ORDERS"),
    // 员工拿车返回中
    RECEIVE_LOADING("RECEIVE_LOADING"),
    //确认完成订单
    CONFIRM_COMPLETION("CONFIRM_COMPLETION"),
    //订单退款
    REFUND_ORDER("REFUND_ORDER"),
    //修改金额
    MODIFY_AMOUNT("MODIFY_AMOUNT"),
    // 修改订单信息
    MODIFY_ORDER_INFO("MODIFY_ORDER_INFO"),
    // 租车押金退还操作
    REFUND_RENTAL_DEPOSIT("REFUND_RENTAL_DEPOSIT"),
    // 违章押金退还
    REFUND_VIOLATION_DEPOSIT("REFUND_VIOLATION_DEPOSIT");


    private final String makeFlag;

    public static OrderOperation getInstance(String makeFlag) {
        for (OrderOperation orderOperation : OrderOperation.values()) {
            if (orderOperation.makeFlag.equals(makeFlag)) {
                return orderOperation;
            }
        }
        throw new RuntimeException("违法的操作标记");
    }
    OrderOperation(String markFlag) {
        this.makeFlag = markFlag;
    }

}